/*
 * @(#)AuditEvent.java
 * Date 2013-11-01
 * Version 1.0
 * Author Jim Horner
 * Copyright (c)2012
 */


package us.hornerscorners.lamppost.model.audit;

import org.codehaus.jackson.map.annotate.JsonDeserialize;
import org.codehaus.jackson.map.annotate.JsonSerialize;
import org.joda.time.DateTime;
import us.hornerscorners.lamppost.model.DateTimeJsonDeserializer;
import us.hornerscorners.lamppost.model.DateTimeJsonSerializer;

import us.hornerscorners.lamppost.model.common.AbstractPersistableModel;
import us.hornerscorners.lamppost.model.common.PersistableModelType;


/**
 * Class description
 *
 *
 * @version        v1.0, 2013-11-01
 * @author         Jim Horner
 */
public class AuditEvent extends AbstractPersistableModel {

    /** Field description */
    @JsonSerialize(using = DateTimeJsonSerializer.class)
    @JsonDeserialize(using = DateTimeJsonDeserializer.class)
    private DateTime eventDateTime;

    /** Field description */
    private String facility;

    /** Field description */
    private String host;

    /** Field description */
    private String level;

    /** Field description */
    private AuditMessage message;

    /**
     * Constructs ...
     *
     */
    public AuditEvent() {

        super(PersistableModelType.AuditEvent);
    }

    /**
     * Method description
     *
     *
     * @return
     */
    public DateTime getEventDateTime() {
        return eventDateTime;
    }

    /**
     * Method description
     *
     *
     * @return
     */
    public String getFacility() {
        return facility;
    }

    /**
     * Method description
     *
     *
     * @return
     */
    public String getHost() {
        return host;
    }

    /**
     * Method description
     *
     *
     * @return
     */
    public String getLevel() {
        return level;
    }

    /**
     * Method description
     *
     *
     * @return
     */
    public AuditMessage getMessage() {
        return message;
    }

    /**
     * Method description
     *
     *
     * @param eventDateTime
     */
    public void setEventDateTime(DateTime eventDateTime) {
        this.eventDateTime = eventDateTime;
    }

    /**
     * Method description
     *
     *
     * @param facility
     */
    public void setFacility(String facility) {
        this.facility = facility;
    }

    /**
     * Method description
     *
     *
     * @param host
     */
    public void setHost(String host) {
        this.host = host;
    }

    /**
     * Method description
     *
     *
     * @param level
     */
    public void setLevel(String level) {
        this.level = level;
    }

    /**
     * Method description
     *
     *
     * @param message
     */
    public void setMessage(AuditMessage message) {
        this.message = message;
    }
}
